package com.xjj.myoa.controller;

import com.xjj.myoa.bean.R;
import com.xjj.myoa.model.OaUser;
import com.xjj.myoa.service.Impl.UserServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpSession;
import java.util.List;

@Controller  //表示当前这个java类是属于控制层的。作用：把UserController这个类创建对象，并且注入到spring容器当中，供程序使用
@ResponseBody  //所有发生到这个类的请求，响应的方式都是以响应体回传
@RequestMapping(value="/") // 映射请求的地址就写在这里
public class LoginController {
    //注入对象给到当前类
    @Autowired
    UserServiceImpl userService;
    //定义一个方法来处理一个请求
    @PostMapping  (value="/login")//这个注解可以映射到get请求方式
   public R login(String u, String p, HttpSession session){
        //通过U和P验证用户
        //验证不通过返回报错信息
        OaUser oaUser = userService.getUserByUserName(u);
        if(oaUser == null) {
            return new R(500, "找不到该用户", null);
        } else if (!p.equals(oaUser.getPassword())) {
            return new R(500, "密码不正确", null);
        }
        //验证通过 用户信息放入session
        session.setAttribute("user_info", oaUser);
        return new R(200, "登录成功", null);
   }
   @PostMapping("/logout")
   public R logout (HttpSession session){
        session.invalidate();

        return new R(200,"登出成功",null);
   }

}
